﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LCTMoodle.Models.ViewModels;
using LCTMoodle.Models.DataModels;

namespace LCTMoodle.Service
{
    public class BinhLuanService : Service
    {
        /// <summary>
        /// Lấy các bình luận theo mã bài viết
        /// </summary>
        /// <param name="maBaiViet">Mã bài viết</param>
        /// <param name="tu">Từ dòng thứ...</param>
        /// <param name="den">Đến dòng thứ... (-1 nếu muốn lấy tất cả)</param>
        /// <returns></returns>
        public static List<BinhLuanViewModel> layBinhLuanTheoMaBaiViet(int maBaiViet, int tu, int den)
        {
            return Service.executeDataReader_List<BinhLuanViewModel>
            (
                "layBinhLuanTheoMaBaiViet",
                new object[]
                {
                    maBaiViet,
                    tu,
                    (den == -1) ? (object)DBNull.Value : den
                }
            );
        }
        /// <summary>
        /// Thêm bình luận
        /// </summary>
        /// <param name="binhLuan">Gồm có
        /// Mã bài viết, mã người tạo, nội dung, mã tập tin (0 nếu không có => NULL)</param>
        /// <returns></returns>
        public static int themBinhLuan(BinhLuanDataModel binhLuan)
        {
            return Service.executeScalar<int>(
                "themBinhLuan",
                new object[] 
                {
                    binhLuan.maBaiViet,
                    binhLuan.maNguoiTao,
                    binhLuan.noiDung,
                    (binhLuan.maTapTin == 0) ? (object)DBNull.Value : binhLuan.maTapTin
                }
            );
        }
        /// <summary>
        /// Xóa bình luận theo mã bình luận
        /// </summary>
        /// <param name="maBinhLuan">Mã bình luận</param>
        public static bool xoaBinhLuanTheoMaBinhLuan(int maBinhLuan)
        {
            return executeNonQuery(
                "xoaBinhLuanTheoMaBinhLuan",
                new object[]
                {
                    maBinhLuan
                }
            );
        }
        /// <summary>
        /// Lấy bình luận theo mã bình luận
        /// </summary>
        /// <param name="maBinhLuan">Mã bình luận</param>
        /// <returns></returns>
        public static BinhLuanViewModel layBinhLuanTheoMaBinhLuan(int maBinhLuan)
        {
            return executeDataReader<BinhLuanViewModel>
                (
                    "layBinhLuanTheoMaBinhLuan",
                    new object[]
                    {
                        maBinhLuan
                    }
                );
        }
    }
}